#pragma once
#include "nodes\Node.h"
#include <string>
#include "base\Controller.h"
#include "EventManager.h"
#include "particles\ParticleSystem.h"
#include "..\..\GameCore.h"
#include <ui\UIDialog.h>
#include "..\actors\FloatingParticles.h"

class DummyState : public ds::GameState , public ds::KeyboardController , public ds::IUIEventListener {

public:
	DummyState(const std::string& name) : ds::GameState(name) {
		gEngine->addController(this);
	}
	~DummyState(void);
	bool loadContent(ds::ResManager& resourceManager);	
	bool update(float elapsedTime);	
	bool onActivation() {
		ds::WorldLayer bl = gEngine->getWorld().getLayerByName("Base");
		gEngine->getWorld().activateLayer(bl);
		return true;
	}
	bool onDeactivation() {
		return true;
	}
	void OnKeyDown( WPARAM wParam ) {}
	void OnKeyUp( WPARAM wParam ) {}
	void OnChar(char ascii,unsigned int keyState);
	virtual void onUIEvent(const ds::IUIEvent& event);
private:
	ds::DynamicSpriteNode* m_EnemySprites;
	ds::ParticleManager* m_ParticleSystem;
	FloatingParticles* m_Particles;
	GameCore* m_Core;
	ds::UIDialog* m_Dialog;
	ds::UIDialog* m_NextDialog;
	ds::UIDialog* m_FPDialog;
};

